home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / LINUX / EPCA.H < prev    next >
C/C++ Source or Header  |  1999-09-17  |  4KB  |  171 lines

  1. #define XEMPORTS    0xC02
  2. #define XEPORTS     0xC22
  3.  
  4. #define MAX_ALLOC   0x100
  5.  
  6. #define MAXBOARDS   12
  7. #define FEPCODESEG  0x0200L
  8. #define FEPCODE     0x2000L
  9. #define BIOSCODE    0xf800L
  10.  
  11. #define MISCGLOBAL  0x0C00L
  12. #define NPORT       0x0C22L
  13. #define MBOX        0x0C40L
  14. #define PORTBASE    0x0C90L
  15.  
  16. /* Begin code defines used for epca_setup */
  17.  
  18. #define INVALID_BOARD_TYPE   0x1
  19. #define INVALID_NUM_PORTS    0x2
  20. #define INVALID_MEM_BASE     0x4
  21. #define INVALID_PORT_BASE    0x8
  22. #define INVALID_BOARD_STATUS 0x10
  23. #define INVALID_ALTPIN       0x20
  24.  
  25. /* End code defines used for epca_setup */
  26.  
  27.  
  28. #define FEPCLR      0x00
  29. #define FEPMEM      0x02
  30. #define FEPRST      0x04
  31. #define FEPINT      0x08
  32. #define    FEPMASK     0x0e
  33. #define    FEPWIN      0x80
  34.  
  35. #define PCXE    0
  36. #define PCXEVE  1
  37. #define PCXEM   2   
  38. #define EISAXEM 3
  39. #define PC64XE  4
  40. #define PCXI    5
  41. #define PCIXEM  7
  42. #define PCICX   8
  43. #define PCIXR   9
  44. #define PCIXRJ  10
  45. #define EPCA_NUM_TYPES 6
  46.  
  47.  
  48. static char *board_desc[] = 
  49. {
  50.     "PC/Xe",
  51.     "PC/Xeve",
  52.     "PC/Xem",
  53.     "EISA/Xem",
  54.     "PC/64Xe",
  55.     "PC/Xi",
  56.     "unknown",
  57.     "PCI/Xem",
  58.     "PCI/CX",
  59.     "PCI/Xr",
  60.     "PCI/Xrj",
  61. };
  62.  
  63. #define STARTC      021
  64. #define STOPC       023
  65. #define IAIXON      0x2000
  66.  
  67.  
  68. #define TXSTOPPED  0x1
  69. #define LOWWAIT    0x2
  70. #define EMPTYWAIT  0x4
  71. #define RXSTOPPED  0x8
  72. #define TXBUSY     0x10
  73.  
  74. #define DISABLED   0
  75. #define ENABLED    1
  76. #define OFF        0
  77. #define ON         1
  78.  
  79. #define FEPTIMEOUT 200000  
  80. #define SERIAL_TYPE_NORMAL  1
  81. #define SERIAL_TYPE_CALLOUT 2
  82. #define SERIAL_TYPE_INFO    3
  83. #define EPCA_EVENT_HANGUP   1
  84. #define EPCA_MAGIC          0x5c6df104L
  85.  
  86. struct channel 
  87. {
  88.     long   magic;
  89.     unchar boardnum;
  90.     unchar channelnum;
  91.     unchar omodem;         /* FEP output modem status     */
  92.     unchar imodem;         /* FEP input modem status      */
  93.     unchar modemfake;      /* Modem values to be forced   */
  94.     unchar modem;          /* Force values                */
  95.     unchar hflow;
  96.     unchar dsr;
  97.     unchar dcd;
  98.     unchar m_rts ;         /* The bits used in whatever FEP */
  99.     unchar m_dcd ;        /* is indiginous to this board to */
  100.     unchar m_dsr ;        /* represent each of the physical */
  101.     unchar m_cts ;        /* handshake lines */
  102.     unchar m_ri ;
  103.     unchar m_dtr ;
  104.     unchar stopc;
  105.     unchar startc;
  106.     unchar stopca;
  107.     unchar startca;
  108.     unchar fepstopc;
  109.     unchar fepstartc;
  110.     unchar fepstopca;
  111.     unchar fepstartca;
  112.     unchar txwin;
  113.     unchar rxwin;
  114.     ushort fepiflag;
  115.     ushort fepcflag;
  116.     ushort fepoflag;
  117.     ushort txbufhead;
  118.     ushort txbufsize;
  119.     ushort rxbufhead;
  120.     ushort rxbufsize;
  121.     int    close_delay;
  122.     int    count;
  123.     int    blocked_open;
  124.     int    event;
  125.     int    asyncflags;
  126.     uint   dev;
  127.     long   session;
  128.     long   pgrp;
  129.     ulong  statusflags;
  130.     ulong  c_iflag;
  131.     ulong  c_cflag;
  132.     ulong  c_lflag;
  133.     ulong  c_oflag;
  134.     unchar *txptr;
  135.     unchar *rxptr;
  136.     unchar *tmp_buf;
  137.     struct board_info           *board;
  138.     volatile struct board_chan  *brdchan;
  139.     struct digi_struct          digiext;
  140.     struct tty_struct           *tty;
  141.     struct termios              normal_termios;
  142.     struct termios              callout_termios;
  143.     struct wait_queue           *open_wait;
  144.     struct wait_queue           *close_wait;
  145.     struct tq_struct            tqueue;
  146.     volatile struct global_data *mailbox;
  147. };
  148.  
  149. struct board_info    
  150. {
  151.     unchar status;
  152.     unchar type;
  153.     unchar altpin;
  154.     ushort numports;
  155.     unchar *port;
  156.     unchar *membase;
  157.     unchar *re_map_port;
  158.     unchar *re_map_membase;
  159.     ulong  memory_seg;
  160.     void ( * memwinon )    (struct board_info *, unsigned int) ;
  161.     void ( * memwinoff )     (struct board_info *, unsigned int) ;
  162.     void ( * globalwinon )    (struct channel *) ;
  163.     void ( * txwinon )     (struct channel *) ;
  164.     void ( * rxwinon )    (struct channel *) ;
  165.     void ( * memoff )    (struct channel *) ;
  166.     void ( * assertgwinon )    (struct channel *) ;
  167.     void ( * assertmemoff )    (struct channel *) ;
  168.     unchar poller_inhibited ;
  169. };
  170.  
  171.